package com.atguigu.java;

import org.junit.Test;

import java.io.*;

/**
 * 处理流之二： 转换流
 * 1.转换流
 * InputStreamReader    将一个字节的输入流转换成一个字符的输入流
 * OutputStreamWriter   将一个字符的输出流转换成有一个字节的输出流
 * 2.作用
 * 提供字节流和字符流之间的相互转换
 * <p>
 * 3.   解码：  字节、字节数组---》字符数组，字符串
 * 编码：  字符数组，字符串--》字节、字节数组
 * <p>
 * <p>
 * <p>
 * 4.字符集
 *
 * @author shkstart
 * @create 2021-01-27 22:22
 */
public class InputStreamReaderTest {
    /*
     *
     * 此时处理异常依旧需要 try-catch-finally
     * InputStreamReader的使用是实现了字节的输入流到字符的输入流
     *
     * */
    @Test
    public void test1() throws IOException {

        File file = new File("Hello.txt");
        FileInputStream fileInputStream = new FileInputStream("Hello.txt");
        //采用了系统默认的字符集UTF-8
//        InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream);
        //指明了字符集为UTF-8，具体使用那个字符集取决于文件保存时使用的字符集
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");

        char[] chars = new char[10];
        int len;
        while ((len = inputStreamReader.read(chars)) != -1) {
            String str = new String(chars, 0, len);
            System.out.println(str);
        }
        inputStreamReader.close();

    }
}
